package fr.cnam.projetSiw.client.core;

import com.google.gwt.event.shared.EventBus;
import com.google.gwt.event.shared.SimpleEventBus;
import com.google.gwt.place.shared.PlaceController;

import fr.cnam.projetSiw.client.structure.pages.HomeView;
import fr.cnam.projetSiw.client.structure.pages.HomeViewImpl;
import fr.cnam.projetSiw.client.structure.pages.MenuView;
import fr.cnam.projetSiw.client.structure.pages.MenuViewImpl;
import fr.cnam.projetSiw.client.structure.pages.description.DescArtistView;
import fr.cnam.projetSiw.client.structure.pages.description.DescArtistViewImpl;
import fr.cnam.projetSiw.client.structure.pages.description.DescEventView;
import fr.cnam.projetSiw.client.structure.pages.description.DescEventViewImpl;
import fr.cnam.projetSiw.client.structure.pages.search.SearchView;
import fr.cnam.projetSiw.client.structure.pages.search.SearchViewImpl;
import fr.cnam.projetSiw.client.structure.pages.suggest.BornArtistView;
import fr.cnam.projetSiw.client.structure.pages.suggest.BornArtistViewImpl;
import fr.cnam.projetSiw.client.structure.pages.suggest.RecordTrackView;
import fr.cnam.projetSiw.client.structure.pages.suggest.RecordTrackViewImpl;
import fr.cnam.projetSiw.client.structure.pages.suggest.SuggestGenreView;
import fr.cnam.projetSiw.client.structure.pages.suggest.SuggestGenreViewImpl;
import fr.cnam.projetSiw.client.structure.pages.suggest.TopArtistView;
import fr.cnam.projetSiw.client.structure.pages.suggest.TopArtistViewImpl;

public class ClientFactoryImpl implements ClientFactory{

	 private final EventBus eventBus = new SimpleEventBus();
	 
	 private final PlaceController placeController = new PlaceController(eventBus);
	
	
	@Override
	public EventBus getEventBus() {
		return eventBus;
	}

	@Override
	public PlaceController getPlaceController() {
		return placeController;
	}
	
	public HomeView getHomeView()
	{
		return new HomeViewImpl();
	}

	@Override
	public MenuView getMenuView()
	{
		return new MenuViewImpl();
	}

	@Override
	public SearchView getSearchView()
	{
		return new SearchViewImpl();
	}

	@Override
	public RecordTrackView getRecordTrackView()
	{
		return new RecordTrackViewImpl();
	}

	@Override
	public TopArtistView getTopArtistView()
	{
		return new TopArtistViewImpl();
	}

	@Override
	public BornArtistView getBornArtistView()
	{
		return new BornArtistViewImpl();
	}

	@Override
	public DescEventView getDescEventView()
	{
		return new DescEventViewImpl();
	}

	@Override
	public DescArtistView getDescArtistView()
	{
		return new DescArtistViewImpl();
	}

	@Override
	public SuggestGenreView getSuggestGenreView() {
		return new SuggestGenreViewImpl();
	}

}
